# -*- coding: utf-8 -*-
"""
@文件    :   students_bar.py
@时间    :   2022/05/24 20:01:16
@作者    :   YTNetMan
@版本    :   1.0
@邮箱    :   ytnetman@163.com
@版权    :   (C)Copyright 2022-2025
@分类    :   办公自动化
@功能    :   柱状图的绘制
            熟悉pyplot作图的方法：
            1、设定x,y轴 plt.bar(x, height)
            2、x轴说明旋转90度 plt.xticks()
            3 对x,y轴吉标题进行定义 xlabel(),ylabel(),title()
            4紧凑型布局 tight_layout() 
            5 显示 show()
"""

import pandas as pd
from matplotlib import pyplot as plt

#下面这句是错的，因为一旦把Field作为索引，就不能做x轴的数据了
#students = pd.read_excel('./doc/students_bar.xlsx',index_col='Field')
students = pd.read_excel('./doc/students_bar.xlsx')
#inplace= True在排序中一定要有，直接对原dataFrame进行操作，否则不能排序
students.sort_values(by = 'Number',ascending = False,inplace= True)
#用pandas的plot.bar方法作图，比较简单，尽量使用pyplot来绘图
#students.plot.bar(x = 'Field',y = 'Number',color='blue',title = 'International students by Field')
#用matplotlib来绘图
#1、建立坐标轴,指定颜色
plt.bar(students.Field, students.Number,color='yellow')
#2、x轴坐标数据说明横向改为纵向
plt.xticks(students.Field,rotation= '90')
#3、对x轴，y轴以及图标标题进行定义
plt.xlabel('Field')
plt.ylabel('Number')
plt.title('International students by Field',fontsize = 22)
#x轴数据被截断了，看不全
plt.tight_layout() #采用紧凑型布局
plt.show()         #显示


